package com.ruoyi.web.service;

import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.core.domain.entity.PdfDocument;
import com.ruoyi.web.bean.ESSPdfPage;
import com.ruoyi.web.bean.PDFPage;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.InputStream;
import java.util.List;

public interface FileService {
    /**
     * 上传文件 MultipartFile
     * @param file 文件
     * @param code 编码
     * @return 结果
     */
    JSONObject saveDocument(MultipartFile file, String code);
    /**
     * 添加文件记录到数据库
     * @param pdf PdfDocument对象
     * @return 结果
     */
    boolean addPdfDocument(PdfDocument pdf);

    /**
     * 从数据库获取文件记录
     * @param documentCode 编码
     * @return 结果
     */
    PdfDocument getPDFDocument(String documentCode);

    /**
    * 将传入的PDF文件处理成图片集合
    * @param pdfFile PDF文件
    * @return 图片集合
    */
    List<ESSPdfPage> splitPDFToImages(File pdfFile);

    PDFPage getPDFPageImg(byte[] pdfFile, int pageNum, int dpi);
    PDFPage getPDFPage(byte[] pdfFile, int pageNum, int dpi);
    /**
     * 上传文件 MultipartFile
     * @param in 文件流
     * @param code 编码
     * @return 结果
     */
    JSONObject saveDocument(InputStream in, String code, String fileType);
    /**
     * 下载文件
     * @param DocumentCode 编码
     * @param suffix 后缀或者格式
     * @return 文件byte
     */
    byte[] downloadDocument(String DocumentCode, String suffix);

    File downloadDocumentFile(String DocumentCode, String suffix);

    void deleteDocument(String documentCode,String fileType);
}
